#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QGuiApplication> // 界面应用
#include <QScreen>  // 屏幕
#include <QRect>    // 矩形

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    this->setWindowTitle("公众号：Qt历险记 查看更多好文");
    this->setStyleSheet("background:black;");

    /* 获取屏幕的分辨率，Qt 官方建议使用这
     * 种方法获取屏幕分辨率，防上多屏设备导致对应不上
     * 注意，这是获取整个桌面系统的分辨率
     */
    QList <QScreen *> list_screen = QGuiApplication::screens();

    /* 如果是 ARM 平台，直接设置大小为屏幕的大小 */
    #if __arm__
    /* 重设大小 */
    this->resize(list_screen.at(0)->geometry().width(),
    list_screen.at(0)->geometry().height());
    #else
    /* 否则则设置主窗体大小为 800x480 */
    this->setGeometry(0, 0, 800, 480);
    #endif

    /* 标签实例化 */
    label = new QLabel(this);
    label->setStyleSheet("color:green;");
    QFont  font = label->font();
    font.setBold(true);
    font.setPointSize(50);
    label->setFont(font);

    /* 设置默认文本 */
    #if __arm__
    label->setText("VolumeDown 松开状态");
    #else
    label->setText("Down 按键松开");
    #endif

    /* 设置对齐方式 */
    label->setAlignment(Qt::AlignCenter);

    /* 居中显示 */
    setCentralWidget(label);
}

MainWindow::~MainWindow()
{
    delete ui;
}

// 按压事件
void MainWindow::keyPressEvent(QKeyEvent *event)
{
    #if __arm__
     /* 判断按下的按键，也就是板子 KEY0 按键 */
     if(event->key() == Qt::Key_VolumeDown) {
         /* 设置 label 的文本 */
         label->setText("VolumeDown 按键按下");
     }
     #else
     /* 判断按下的按键，也就是"↓"方向键 */
     if (event->key() == Qt::Key_Down) {
         /* 设置 label 的文本 */
         label->setText("Down 按键按下");
     }

     #endif
     /* 保存默认事件 */
     QWidget::keyPressEvent(event);
}
// 松开事件
void MainWindow::keyReleaseEvent(QKeyEvent *event)
{
    #if __arm__
    /* 判断松开的按键，也就是板子 KEY0 按键 */
    if(event->key() == Qt::Key_VolumeDown) {
        /* 设置 label 的文本 */
        label->setText("VolumeDown 按键松开");
    }
    #else
    /* 判断按下的按键，也就是"↓"方向键 */
    if(event->key() == Qt::Key_Down) {
        /* 设置 label 的文本 */
        label->setText("Down 按键松开");
    }
    #endif
    /* 保存默认事件 */
    QWidget::keyReleaseEvent(event);
}

